﻿using System.Web;
using System.Web.Mvc;
using Mvc4TwitterBootstrap;

//Achtung keinen Namespace angeben, dann muss auch kein Verweis in den CSHTML Dateien angeben werden.

public static class HtmlExt
{
    /// <summary>
    /// Eigene Helper Methode für Fehler, damit diese auch richtig angezeigt werden können. Mit der Twitter API
    /// Quelle: http://stackoverflow.com/questions/5857851/custom-validationsummary-template-asp-net-mvc-3
    /// </summary>
    public static HtmlString MyValidationSummary(this HtmlHelper helper, string validationMessage = "")
    {
        string retVal = string.Empty;

        //Wenn das Model Valide ist, wird ein Lehrer String zurück gegeben
        if (helper.ViewData.ModelState.IsValid)
        {
            return new HtmlString(string.Empty);
        }

        //zusammenbauen unserer Fehlermeldung
        retVal += "<div class='alert alert-error'><button class='close' data-dismiss='alert' type='button'>×</button><strong>Error</strong><br/>";

        //Wenn eine Validationmessage übergeben wurde, diese hier auch mit anzeigen.
        if (!string.IsNullOrEmpty(validationMessage))
        {
            retVal += validationMessage + "<br/>";
        }

        foreach (var key in helper.ViewData.ModelState.Keys)
        {
            foreach (var err in helper.ViewData.ModelState[key].Errors)
            {
                retVal += helper.Encode(err.ErrorMessage) + "<br/>";
            }
        }
        retVal += "</div>";
        return new HtmlString(retVal);
    }

}